Publicado por Joy Mundy en 2011
Archivado en ETL y calidad de datos
La validación de un entorno datawarehouse/BI es un gran reto. La metodología de validación estándar valida sólo una pequeña cosa a la vez. Sin embargo, la naturaleza de un sistema DW/BI versa sobre integraciones complejas, sin mencionar el elevado volumen de datos. Aquí están mis 5 recomendaciones principales para construir y ejecutar un test en el entorno de tu proyecto DW/BI.
Necesitas que sea pequeño para que el test se realice rápidamente. Necesitas que sea estático para conocer de antemano los resultados esperados. Y necesitas que derive de datos reales porque no hay nada como los datos reales para ofrecer una combinación realista de escenarios buenos y malos. Necesitarás añadir filas en el test de la base de datos para probar que cada una de las instrucciones de tu código ETL cubre un escenario no incluido en el test de datos original.
Empieza comprobando tan pronto como escribas una línea de código (o conectas dos cajas en el UI de tu herramienta ETL). Los desarrolladores hacen esto todo el tiempo, por supuesto. Desarrollar implica poner en marcha tests unitarios para asegurar que su código funciona como se espera. Muchos desarrolladores no son tan buenos siguiendo la evolución de esas pruebas y realizándolas frecuentemente. Diariamente. Cada vez que se realiza un commit en tu código. Si realizas el test cada día, y priorizas en mejorar cada test que falló ayer, será más fácil determinar aquello que no funcionó.
La prueba unitaria asegura que el código desarrollado funciona tal y como se ha diseñado. La prueba del sistema asegura que el sistema en completo funciona, de acuerdo con las especificaciones. La prueba del sistema también se debería realizar pronto.
Hay una "fase de test" oficial antes de la puesta en funcionamiento del DWH. Esta fase de tests es para llevar a cabo las pruebas y reconocer problemas, no para identificar como deberían ser los tests y como llevarlos a cabo. Se debe empezar a probar el sistema al inicio del proceso de desarrollo, de esta manera todos los detalles se resuelven mucho antes de empezar con la "fase de test" oficial, que supone mayor presión para el funcionamiento correcto del sistema.
La recomendación de hacer el test pronto y regularmente es práctica solamente si automatizas el proceso. Ningún desarrollador va a utilizar hasta la última de su día de trabajo haciendo de niñera de la prueba unitaria. Y pocos equipos pueden permitirse un controlador a tiempo completo para hacer ese trabajo en lugar del desarrollador. Para automatizar la prueba, necesitas herramientas. Muchas organizaciones ya disponen “in situ” de herramientas para comprobar la calidad de las pruebas. Si tu no las tienes, o estás convencido de que las herramientas de las que dispones no responden a las necesidades de control del sistema DW/BI, intenta buscar en google “herramientas de software para asegurar la calidad” para disponer de una inmensa lista de productos y metodologías disponibles a una extensa gama de precios.
Todos los software comerciales de herramientas de prueba te permitirán formular tests, ejecutar tests, registrar los resultados de los tests realizados y informar de esos resultados. Para la prueba de la unidad y prueba de la calidad de los datos, define los tests para llevar a cabo una consulta en la fuente y el objetivo del almacén de datos. Tienes que buscar el recuento de filas y cantidades para hacerlas coincidir.
Una herramienta de testing utilizada para probar el DW/BI debe ser capaz de ejecutar un escenario que establezca el entorno de prueba antes de que las pruebas se lleven a cabo. Las tareas que necesitará ejecutar incluyen:
Después de ejecutar y registrar los tests, termina con un script de limpieza, que debería ser tan simple como eliminar el entorno VM.
La metodología de prueba estándar cambia una cosa, ejecuta un test y registra los resultados. En el mundo del DW/BI, debes agrupar juntos muchos tests en un grupo de tests. Incluso con una base de datos pequeña, no tienes que ejecutar tu código ETL para cada una de los centenares de unidades que deberían estar funcionando.
Necesitamos la experiencia de los usuarios para definir buenos tests para el sistema. ¿Cómo sabemos que los datos son correctos? ¿Cómo sabemos que el rendimiento de las consultas cumple sus expectativas? Hacer una lista de los usuarios de negocios durante el proceso de especifiación del test asegurará una mejor prueba que si simplemente el equipo DW/BI construye tests basados en lo que creen que es interesante. Contar con los usuarios de negocios clave en el proceso de aseguramiento de la calidad también proporciona un impulso enorme en la credibilidad.
Es de vital importancia que el entorno de test sea similar al de producción. Sería ideal que fuese el mismo hardware, software y configuración. En el mundo real, relativamente pocas organizaciones tienen presupuesto para tener dos servidores DW grandes. Pero cualquier organización puede, y debe, hacer coincidir los siguientes elementos:
Si sigues estas sugerencias, especialmente la sugerencia de probar continuamente, probablemente tengas una fase de test agradable y sin crisis y cumplirás el hito de pase a producción en la fecha programada. Si no, estás corriendo un serio riesgo de retrasar interminablemente un fabuloso proyecto en el infierno QA, con los usuarios de negocios y la dirección llamando a tu puerta.
Artículo original: Kimball Group